#ifndef __LOGO_IEXEC_H__
#define __LOGO_IEXEC_H__


#define INPUT_SIZE 256

class i_exec_t
{
public:
   virtual void canvassize (double x, double y) = 0;
   virtual void reset (void) = 0;
   virtual void clear (void) = 0;
   virtual void hide (void) = 0;
   virtual void canvascolor (double r, double g, double b) = 0;
   virtual void pencolor (double r, double g, double b) = 0;
   virtual void penwidth (double w) = 0;
   virtual void go (double x, double y) = 0;
   virtual void direction (double d) = 0;
   virtual void turnright (double d) = 0;
   virtual void turnleft (double d) = 0;
   virtual void forward (double d) = 0;
   virtual void backward (double d) = 0;
   virtual void fontsize (double n) = 0;
   virtual void print (char* str) = 0;
   virtual void penup (void) = 0;
   virtual void pendown (void) = 0;
   virtual void center (void) = 0;
   virtual void gox (double d) = 0;
   virtual void goy (double d) = 0;
   virtual void wrapon (void) = 0;
   virtual void wrapoff (void) = 0;
   virtual void show (void) = 0;
   /* the returned string shall NOT be freed by the caller. */
   virtual char* inputwindow (char* str) = 0;
   virtual void message (char* str) = 0;
   virtual void debug_info (char* str) = 0;
   virtual void error_info (char* str) = 0;
   virtual void done(void) = 0;
   virtual void debug_cmd_ack(int lineno) = 0;
};

#endif /* __LOGO_IEXEC_H__ */


